home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 July / macformat-026.iso / mac / Shareware City / Developers / berkeleydb1.73 / Berkeley_db / PORT / clib / snprintf.c
Encoding:
C/C++ Source or Header  |  1993-06-26  |  801 b   |  57 lines  |  [TEXT/????]

  1. #include <sys/types.h>
  2. #ifndef macintosh
  3. #include <sys/cdefs.h>
  4. #endif
  5.  
  6. #include <compat.h>
  7.  
  8. #ifdef __STDC__
  9. #include <stdarg.h>
  10. #else
  11. #include <varargs.h>
  12. #endif
  13.  
  14. int
  15. #ifdef __STDC__
  16. snprintf(char *str, size_t n, const char *fmt, ...)
  17. #else
  18. snprintf(str, n, fmt, va_alist)
  19.     char *str;
  20.     size_t n;
  21.     const char *fmt;
  22.     va_dcl
  23. #endif
  24. {
  25.     va_list ap;
  26.     char *rp;
  27.     int rval;
  28. #ifdef __STDC__
  29.     va_start(ap, fmt);
  30. #else
  31.     va_start(ap);
  32. #endif
  33. #ifdef VSPRINTF_CHARSTAR
  34.     rp = vsprintf(str, fmt, ap);
  35.     va_end(ap);
  36.     return (strlen(rp));
  37. #else
  38.     rval = vsprintf(str, fmt, ap);
  39.     va_end(ap);
  40.     return (rval);
  41. #endif
  42. }
  43.  
  44. int
  45. vsnprintf(str, n, fmt, ap)
  46.     char *str;
  47.     size_t n;
  48.     const char *fmt;
  49.     va_list ap;
  50. {
  51. #ifdef VSPRINTF_CHARSTAR
  52.     return (strlen(vsprintf(str, fmt, ap)));
  53. #else
  54.     return (vsprintf(str, fmt, ap));
  55. #endif
  56. }
  57.